import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np

plt.style.use(['ggplot', 'fast'])

fig = plt.figure(num='3D Plotting', figsize=(12, 6), tight_layout=True)
ax: Axes3D = fig.add_subplot(111, projection='3d')

x = np.linspace(-5, 5, 200)
y = np.linspace(-5, 5, 200)
x, y = np.meshgrid(x, y)
z = np.sin(x) + np.cos(y)

ax.plot_surface(x, y, z, cmap='rainbow')

plt.show()
